drop table if exists t1, t2;
create table t1 (a int) engine=innodb;
xa start 'test1';
insert t1 values (10);
xa end 'test1';
xa prepare 'test1';
xa rollback 'test1';
select * from t1;
xa start 'test2';
xa start 'test-bad';
insert t1 values (20);
xa prepare 'test2';
xa end 'test2';
xa prepare 'test2';
xa commit 'test2';
select * from t1;
xa start 'testa','testb';
insert t1 values (30);
commit;
xa end 'testa','testb';
begin;
create table t2 (a int);
xa start 'testa','testb';
xa start 'testa','testb', 123;
xa start 0x7465737462, 0x2030405060, 0xb;
insert t1 values (40);
xa end 'testb',' 0@P`',11;
xa prepare 'testb',0x2030405060,11;
start transaction;
xa recover;
xa prepare 'testa','testb';
xa recover;
xa commit 'testb',0x2030405060,11;
xa rollback 'testb',0x2030405060,11;
xa rollback 'testa','testb';
xa commit 'testb',0x2030405060,11;
xa rollback 'testb',0x2030405060,11;
xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
select * from t1;
xa recover;
xa rollback 'testb',0x2030405060,11;
drop table t1;
drop table if exists t1;
create table t1(a int, b int, c varchar(20), primary key(a)) engine = innodb;
insert into t1 values(1, 1, 'a');
insert into t1 values(2, 2, 'b');
xa start 'a','b';
update t1 set c = 'aa' where a = 1;
xa start 'a','c';
update t1 set c = 'bb' where a = 2;
update t1 set c = 'bb' where a = 2;
update t1 set c = 'aa' where a = 1;
select count(*) from t1;
xa end 'a','c';
xa rollback 'a','c';
xa start 'a','c';
drop table t1;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
XA START 'x';
SET SESSION autocommit=0;
INSERT INTO t1 VALUES(1);
SET SESSION autocommit=1;
SELECT @@autocommit;
INSERT INTO t1 VALUES(1);
XA END 'x';
XA COMMIT 'x' ONE PHASE;
DROP TABLE t1;
SET SESSION autocommit=1;
xa start 'a';
xa end 'a';
xa rollback 'a';
xa start 'a';
xa end 'a';
xa rollback 'a';
xa start 'a';
xa end 'a';
xa prepare 'a';
xa commit 'a';
xa start 'a';
xa end 'a';
xa prepare 'a';
xa commit 'a';
CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1),(2);
BEGIN;
UPDATE t1 SET a=3 WHERE a=1;
BEGIN;
UPDATE t1 SET a=4 WHERE a=2;
UPDATE t1 SET a=5 WHERE a=2;
UPDATE t1 SET a=5 WHERE a=1;
ROLLBACK;
ROLLBACK;
BEGIN;
UPDATE t1 SET a=3 WHERE a=1;
XA START 'xid1';
UPDATE t1 SET a=4 WHERE a=2;
UPDATE t1 SET a=5 WHERE a=2;
UPDATE t1 SET a=5 WHERE a=1;
XA END 'xid1';
XA ROLLBACK 'xid1';
XA START 'xid1';
XA END 'xid1';
XA ROLLBACK 'xid1';
DROP TABLE t1;
XA START 'x';
XA END 'x';
XA END 'x';
XA PREPARE 'x';
XA PREPARE 'x';
XA ROLLBACK 'x';
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a)) engine=InnoDB;
INSERT INTO t1 VALUES (1, 1), (2, 2);
XA START 'a';
UPDATE t1 SET b= 3 WHERE a=1;
XA START 'b';
UPDATE t1 SET b=4 WHERE a=2;
UPDATE t1 SET b=5 WHERE a=1;
